package com.health.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.health.system.dto.AuthorizationResourceDTO;
import com.health.system.dto.ResourceTreeListDTO;
import com.health.system.entity.Resource;
import com.health.system.vo.ResourceTreeListSearchVo;
import com.health.system.vo.ResourceVo;
import com.health.system.vo.UpdateStatusVo;

import java.util.List;


public interface ResourceService extends IService<Resource> {

    /**
     * 树形结构列表生成
     *
     * @param vo 搜索条件 {@link ResourceTreeListSearchVo}
     * @return /
     */
    List<ResourceTreeListDTO> treeList(ResourceTreeListSearchVo vo);

    /**
     * 更新资源匿名状态
     *
     * @param vo 状态实体类 {@link UpdateStatusVo}
     */
    void updateStatus(UpdateStatusVo vo);

    /**
     * 删除资源ID
     *
     * @param id 资源ID
     */
    void deleteById(Long id);

    /**
     * 新增资源
     *
     * @param vo 新增数据 {@link ResourceVo}
     */
    void insert(ResourceVo vo);

    /**
     * 更新资源
     *
     * @param vo 更新数据 {@link ResourceVo}
     */
    void update(ResourceVo vo);


    /**
     * 查询资源关联的角色
     * <p>
     * return /
     */
    List<AuthorizationResourceDTO> getResourcesAndRoles();
}
